using System;
using Csla;
using Csla.Data;
using Csla.Server;
using Utpl.Syllabus.Framework;
using Utpl.Syllabus.Framework.Csla.Base;
using DataPortal = Csla.DataPortal;

namespace Utpl.Syllabus.Reconocimiento.BL
{
    /// <summary>
    /// Estereotipo: ReadOnlyList
    /// Reponsabilidad: Obtener una lista de las EstadoRegistroAcademicos
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 18/12/2012 10:10:12 AM
    /// </summary>
    [NotAuthorize]
    [Serializable]
    [ObjectFactory("Object=EstadoRegistroAcademicoList;Assembly=Utpl.Syllabus.Reconocimiento.BL")]
    public class EstadoRegistroAcademicoList : SyReadOnlyRootListBase<EstadoRegistroAcademicoList, EstadoRegistroAcademicoInfo>
    {
        #region Factory Methods

        /// <summary>
        /// Obtiene todas las EstadoRegistroAcademicos para un programa academico destino
        /// </summary>
        /// <returns></returns>
        public static EstadoRegistroAcademicoList Get()
        {
            return DataPortal.Fetch<EstadoRegistroAcademicoList>(new SingleCriteria<EstadoRegistroAcademicoList, int>(0));
        }

        private EstadoRegistroAcademicoList()
        { /* require use of factory methods */ }

        #endregion
    }

    /// <summary>
    /// Estereotipo: ReadOnlyChild
    /// Reponsabilidad: EstadoRegistroAcademico info
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 18/12/2012 10:10:12 AM
    /// </summary>
    [Serializable]
    [ObjectFactory("Object=EstadoRegistroAcademicoInfo;Assembly=Utpl.Syllabus.Reconocimiento.BL")]
    public class EstadoRegistroAcademicoInfo : SyReadOnlyChildBase<EstadoRegistroAcademicoInfo>
    {
        #region Business Methods
        
        #region < PROPIEDADES >

        /// <summary>
        /// Codigo del estado
        /// </summary>
        public string Codigo { get; internal set; }

        /// <summary>
        /// Nombre del estado
        /// </summary>
        public string EstadoNombre { get; internal set; }
        #endregion

        #region < LISTAS >

        
    
        #endregion

        #endregion

        #region Factory Methods

        internal static EstadoRegistroAcademicoInfo GetEstadoRegistroAcademicoInfo(SafeDataReader childData)
        {
            return DataPortal.FetchChild<EstadoRegistroAcademicoInfo>(childData);
        }

        /// <summary>
        /// Obtiene un nivel academico por su GUID
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static EstadoRegistroAcademicoInfo Get(Guid guid)
        {
            return DataPortal.Fetch<EstadoRegistroAcademicoInfo>(new SingleCriteria<EstadoRegistroAcademicoInfo, Guid>(guid));
        }

        private EstadoRegistroAcademicoInfo()
        { /* require use of factory methods */ }

        #endregion
    }
}